<?php
	/**
	  * @name		File
	  * @author		Hermann D. Schimpf <hschimpf@gschimpf.com>
	  * @license	http://opensource.org/licenses/gpl-2.0.php
	  * @date		2010-08-06
	  * @version	0.1.0
  	**/

	class File {
		/**
		 * Nombre del fichero de la instancia
		 * @var String $name
		 */
		private $name = null;
		private $mtime = null;
		/**
		 * Constructor de la clase
		 * @param String Fichero a procesar
		 * @throw FileException
		 */
		public function __construct($file) {
			/* verificamos si el parametro es un fichero */
			if (!is_file($file))
				/* salimos con una excepcion */
				throw new FileException;
			/* almacenamos el fichero */
			$this->setFile($file);
		}
		/**
		 * Muestra la clase en pantalla
		 * @return String
		 */
		public function __toString() {
			/* retornamos la clase en un String */
			return "\n[" . __CLASS__ . '] ' . $this->getFile() . " {\n{$this->getPropertiesToString()}\n}";
		}
		/**
		 * Retorna el nombre de la instancia (Ruta)
		 * @return String Nombre de la instancia
		 */
		public function getName() {
			/* retornamos el path */
			return $this->name;
		}
		/**
		 * Retorna la fecha de modificacion del directorio
		 * @return String Fecha de Modificacion
		 */
		public function getMTime() {
			/* retornamos la fecha de modificacion */
			return $this->mtime;
		}
		/**
		 * Retorna las propiedades del fichero
		 * @return String Propiedades
		 */
		private function getPropertiesToString() {
			/* retornamos las propiedades en un string */
			return "\tproperties";
		}
		/**
		 * Almacena el nombre del fichero
		 * @param String Fichero
		 */
		private function setFile($file) {
			/* almacenamos el fichero */
			$this->name = $file;
			/* almacenamos la fecha de modificacion */
			$this->mtime = date('Y-m-d H:i:s', filemtime($this->getName()));
		}
		/**
		 * Retorna el nombre del fichero
		 * @return String Nombre del fichero
		 */
		private function getFile() {
			/* retornamos el nombre */
			return $this->name;
		}
	}
?>